#/bin/sh
#--------------------------------------------
# Date: 2013-09-13
# Author: AK
# 功能：打包成ipa 并上传ipa 到 fir.im，并可以发送邮件给相关人
# 注意：1在.xcodeproj 同级目录 运行sh,2要上传后要在后台 确认上传成功，目前没有回调通知
# 对于内网发布app时https方式访问 一路被强（也可以自己创建https 和根结点证书有些麻烦），最后选择fir.im 1，一键发布。2，fir有好多的续功能比如更新邮件通知等，下周上线
# ios 打包方式两种 adhoc和inhouse， adhoc发布的设备数有限（100台），inhouse 要企业开发者账号，同时不能上架
# TODO AK 用inhouse发布...
#--------------------------------------------

usage () {
  echo "$0 please tell me info file path ..."
  exit 0
}

if test $# = 0;then
	echo "参数不能为空"
   usage
fi

#判断路径参数
if [ -z "$2" ];then
	echo "info plist 路径为空"
	usage
fi

#须配置参数  start

#icon路径
pathtoartwork="EasytoMore/iTunesArtwork.png"
#fir.im 开发者 token
#王成的账号
#token="9n58m0Z45npNci08ubyj6jDafE7xWyBJqER5t3P8"

#王燕账号
token="b0aaa1417b7511e4a9ca7f78a33c7e224376b2d4"

#工程的目录
project_path="$(pwd)"
#plist file path
infoplist_path=$2

####收件人，多个收件人以空格分隔 先配置 使用  brew install msmtp 参考http://my.oschina.net/uhziel/blog/186683
email_reciver="287971051@qq.com"
#发送者邮箱
email_sender=xcodeshell@jiecao.fm
#邮箱用户名
email_username=xcodeshell@jiecao.fm
#邮箱密码
email_password=jiecao.fm1
#smtp服务器地址
email_smtphost=smtp.exmail.qq.com


#须配置参数  end

#参数判断 所有的参数
#判断所输入路径是否是xcode工程的根路径
if [ ! -x "$project_path" ]; then
echo -e " 请配置好工程目录! 目录不存在或没有权限. "
exit 0
fi

# 判断 info.plist是否是存在
if [ ! -f "$infoplist_path" ]; then
echo -e " info.plist 路径有误."
exit 0
fi

# 判断 iTunesArtwork.png是否是存在 先不加判断
#if [ ! -f "$pathtoartwork" ]; then
#echo "iTunesArtwork.png 路径有误."
#exit 0
#fi

#注意：在打包之前执行svn up 得到最新的 verson
svnversion=`svn info | grep -i Revision: | cut -d' ' -f2`
`/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${svnversion}" ${infoplist_path}`

#info.plit信息
#获取app名
ipaname=`/usr/libexec/PlistBuddy -c "Print :CFBundleDisplayName $REV" $infoplist_path`

#target name
targetName=$(/usr/libexec/PlistBuddy -c "print CFBundleName" ${infoplist_path})
#空格转义
displayname=$(perl -MURI::Escape -e 'print uri_escape("'"${ipaname}"'");' "$2")
#获取版本号
version=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion $REV" "${TARGET_BUILD_DIR}/${infoplist_path}"`
#appid
appid=`/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier $REV" "${TARGET_BUILD_DIR}/${infoplist_path}"`

echo "info plist :targetName:${targetName}  version:${version}+appid:${appid}"

#生成包位置
releaseDir="$(pwd)/xcodeBuild"
#当前时间
datetime=$(date +%Y-%m-%d-%H-%M)
#ipa 目录
ipapath="${releaseDir}/${targetName}_${datetime}.ipa"
#app 目录
appPath="${releaseDir}/${targetName}.app"

rm -fr "$releaseDir"
mkdir -p "$releaseDir"

#获取当前目录
projectpath="$(pwd | sed 's/ /\\ /g')"
gitpath=`pwd`

echo "开始build app文件"
#clean项目
xcodebuild clean
#build .app
xcodebuild -project YOSticker.xcodeproj -scheme "${targetName}" CONFIGURATION_BUILD_DIR="$releaseDir"

echo "appPath: $appPath\n ipapath: $ipapath"

#build .ipa
xcrun -sdk iphoneos PackageApplication "$appPath" -o "$ipapath"
echo "打包ipa 成功"


# 保存 IPA .dSYM 等信息
mkdir -p ~/Desktop/${targetName}_bak/${datetime}

cp -r $releaseDir ~/Desktop/${targetName}_Bak/${datetime}

#最后一次提交信息
#get last commit if have
#gitcommit=`git --git-dir="${gitpath}/.git" log -1 --oneline --pretty=format:'%s'`

#上传ipa包 到fir
echo "上传中...${targetName}_${datetime}.ipa"

#调用 fir clt
fir publish $ipapath -t $token -c $4
 
# #删除临时文件
rm -R $releaseDir
# rm ${target}.ipa
rm -rf ./build

open "http://fir.im/gd6x"
 
# ####通知所有人 QQ weixin 推送todo
#发送邮件

# if [ $should_email = y ];then
    echo "发送邮件..."
	email_title="${ipaname}build:${svnversion}-iOS客户端更新"
	email_content="这个邮件由系统自动发出, 请不要回复. 下载地址:http://fir.im/gd6x"

	echo ${email_content} | mail -s ${email_title} pm@yoyo-corp.com biz@yoyo-corp.com rd@yoyo-corp.com ued@yoyo-corp.com


 # fi



exit 0
